Field of the Invention
Embodiments of the present invention generally relate to hyperlink presence. More specifically, embodiments of the present invention relate to a system and method for monitoring presence information of a hyperlink, and rendering the presence information to a user.
Description of the Related Art
An architectural style that underlies the Web is REpresentational State Transfer (“REST”). A web service that is compatible with REST is said to be “RESTful.” REST provides resource management and promotes architectural choices that include: 1) Addressability—each resource can be addressed by Uniform Resource Identifier (“URI”); 2) Connectedness—resources are linked to provide navigations; 3) Uniform Interface—all resources support a subset of a uniform interface between components, namely GET, PUT, DELETE and POST; 4) Statelessness—all requests to a resource contain all of information necessary to process the requests, and the servers do not need to keep any context about the requests; and 5) Layering: intermediate proxies between clients and servers can be used to cache data for efficiency. Because of its relative simplicity, compared to SOAP-based web services, REST web service paradigm is gaining popularity for use in implementing mobile device applications. Researchers have also compared the performance of the same SOAP and REST services implemented on mobile devices. REST was found to be more suitable to mobile devices since REST required less processing time and memory.
Constrained REST Environments is protocol that restricts HTTP when executing on low-end devices, such as 8-bit microcontrollers with up to 12 KB of memory. The Constrained REST Environments protocol binds HTTP to UDP for asynchronous messages. However, this approach is not suitable for mobile environments, because mobile phones do not have reachable IP addresses.
Researchers in the field have proposed using REST web service framework for a number of applications, such as: to implement mobile commerce spaces; to support services on mobile computing units in connection with semantic web technology; to expose IMS capabilities to Web 2.0 applications; to support person-to-person communication and collaborations over WiFi and 3G networks; and to provide a web service provisioning system having much lower overhead than a SOAP counterpart.
Researchers have also presented a REST architecture to render web interfaces on mobile devices in which the REST protocol is used to synchronize between applications.
Researchers have described an approach to adapt resource-oriented service framework to automatically control robots for industrial automation tasks. This approach uses a special protocol called MRROR to handle events. Performance of this framework was evaluated under three physical networks: wireless LAN, Bluetooth and ZigBee. The results showed that the REST framework had a lower overhead than SOAP-based Devices Profile for Web Services (“DPWS”).
Wireless Application Protocol (“WAP”) is a suite of protocols to connect wireless mobile phones to the Web. The typical WAP architecture includes a Content Server, a WAP Gateway, and mobile devices. When requested by the Content Server, the WAP Gateway uses Wireless Session Protocol (“WSP”), which is a binary version of HTTP, to transfer encoded Wireless Markup Language (“WML”) content to the mobile devices. However, modern smart phones rarely support WAP because they can interpret HTML directly.
None of the research discussed above has studied how to compact HTTP for mobile devices and how to expand HTTP to connect phones with each other to enable a collaborative endpoint network in a mobile phone environment and to link functions on the phones with enterprise applications.
Extensible Messaging and Presence Protocol (“XMPP”), described by Internet Engineering Task Force (IETF) document numbers RFC-3920 and RFC-3921, supports efficient bidirectional XML streams between XMPP servers using two TCP/IP connections. This creates bidirectional notification flows between XMPP servers. However, XMPP protocol is not based on REST web services. Although BOSH (XEP-0124) uses HTTP long-polling to emulate bidirectional TCP streams, the established streams are not web resources that can be manipulated by HTTP. XMPP also supports a publish/subscribe extension (XEP-0060) to allow XMPP entities to subscribe and publish events to topics. But these subscriptions are unidirectional and not web resources.
Many mobile devices, such as smart phones, have the ability to host REST services so its functions and states can be controlled and observed in real-time. However, these devices do not have an IP address that is reachable from outside a cellular network, therefore they cannot accept outside HTTP requests after they connect to the cellular network. Meanwhile, these mobile devices can connect to XMPP servers and clients without a problem. However, REST services on devices are not usable over an XMPP network because there is no defined way to transport HTTP messages over XMPP.
Web browsers are becoming peer-to-peer communication endpoints, promoted by groups such as the W3C Web Real-Time Communication working group. In the future, a web browser may host REST services that another browser can invoke. Several HTTP/XMPP gateway technologies have been developed to allow web browsers to connect to XMPP servers and exchange XMPP messages. But because there is no defined way to transport HTTP over XMPP, the REST services in web browsers are not usable over the XMPP network.
XMPP has been used in real-time communication (e.g., Jingle in Google Talk) and collaborations (e.g., Cisco Jabber for unified communications (“UC”)). However, current XMPP networks do not expose web resources such that the web resources can be manipulated by HTTP. As communication and collaboration converge with the Web, there is a need to manipulate XMPP networks resources as web resources by use of HTTP.
Thus there is a need to exchange HTTP messages in a XMPP network, and a need for a mechanism to expose functions in a XMPP network as web resources that can be manipulated by HTTP.